/**
 * SM3哈希加密工具类
 * 基于sm-crypto库实现，统一使用十六进制格式
 */
import { sm3 } from "sm-crypto";

/**
 * SM3哈希计算
 * @param {string} data 待计算哈希的数据
 * @returns {string} 哈希结果（十六进制）
 */
export function hash(data: string): string {
  // 计算哈希（返回十六进制字符串）
  return sm3(data);
}

/**
 * SM3哈希计算，支持HMAC模式
 * @param {string} data 待计算哈希的数据
 * @param {string} key 密钥
 * @returns {string} 哈希结果（十六进制）
 */
export function hmac(data: string, key: string): string {
  // sm-crypto库的SM3不直接支持HMAC模式，这里使用简单的key+data方式
  // 在实际应用中，应该使用更标准的HMAC实现
  return sm3(key + data);
}
